libdatadog update to 952c2ef7#3983
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f826cc728b
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| @@ -1 +1 @@ | |||
| Subproject commit 6760faaeeda1cfcf634410105f93cf7149265592 | |||
| Subproject commit c79d783f79f4a2d1e637906f3323600c6e2b5b17 | |||
There was a problem hiding this comment.
Regenerate the sidecar FFI signature
This libdatadog bump changes ddog_sidecar_session_set_config by inserting retry_interval_milliseconds after flush_interval_milliseconds, but the checked-in components-rs/sidecar.h and the call in ext/sidecar.c still use the old argument list. Because C compiles against the stale header, this will not be caught at compile time; at runtime the new Rust FFI function will read every argument after the flush interval in the wrong slot, so normal sidecar startup can misconfigure intervals/sizes and eventually interpret non-pointer values as strings or callbacks. Please regenerate/update the header and pass the new retry interval at the call site as part of this bump.
Useful? React with 👍 / 👎.
| AssignmentReason::Static => REASON_STATIC, | ||
| AssignmentReason::TargetingMatch => REASON_TARGETING_MATCH, | ||
| AssignmentReason::Split => REASON_SPLIT, | ||
| AssignmentReason::Default => REASON_DEFAULT, |
There was a problem hiding this comment.
Handle invalid flag configs as defaults
The new libdatadog revision also adds EvaluationError::FlagConfigurationInvalid, which get_assignment can return for a requested flag whose per-flag config is invalid/unsupported; upstream FFE FFI maps that case to DEFAULT with no error so callers get their supplied default. This wrapper only added the new assignment reason, while the error match below still sends the new error through _ => (ERROR_GENERAL, REASON_ERROR), so those flags will now surface as evaluation errors instead of default evaluations. Please add an explicit arm for the new error variant.
Useful? React with 👍 / 👎.
|
Benchmarks [ tracer ]Benchmark execution time: 2026-06-17 10:28:44 Comparing candidate commit c111448 in PR branch Found 0 performance improvements and 1 performance regressions! Performance is the same for 192 metrics, 1 unstable metrics.
|
b26baf8 to
f6df517
Compare
Automated update by CI pipeline https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/119301033 Full CI result: ❌ 14 job(s) failed
1ebeb95 to
c8f0703
Compare
Automated update by CI pipeline https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/119319187 Full CI result: ❌ 2 job(s) failed
Summary
Automated update of the libdatadog submodule to the latest HEAD.
$LIBDATADOG_PINNED_SHA952c2ef75cdf7b2895d7152100ea61c12ccf4439Full CI result: ❌ 2 job(s) failed
CI pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/119319187
libdatadog Integration Report
libdatadog SHA: 952c2ef75cdf7b2895d7152100ea61c12ccf4439
Analysis date: 2026-06-17
Overall status
✅ Clean update (no API changes required; the only persistent failures are flaky Windows job timeouts)
Build & test summary
The pipeline (119301593) finished with 2 persistent failures, both of the same kind:
windows test_c: [7.2]job_execution_timeoutwindows test_c: [7.3]job_execution_timeoutKey observations:
tmp/artifacts/traces/is empty — no job failed to compile against the new libdatadog. The Rust/C/FFI code built cleanly on every platform that produced a trace.windows test_cjob (.gitlab/generate-tracer.php:111) builds the extension withnmakeinside the Windows container as its first step (.gitlab/generate-tracer.php:139) before running the test suite. Its timeout is60m(.gitlab/generate-tracer.php:190). An API incompatibility would have aborted at thenmakestep in minutes. Instead both jobs consumed the entire 60-minute wall-clock budget (3602 s ≈ 60 m 02 s) and were then killed — i.e. compilation succeeded and the PHP extension test suite (tests\ext) was still running when the clock expired.test_c, and the ASAN jobs passed. A libdatadog hang/deadlock in the FFI layer would be expected to affect every PHP version and Linux as well, not just Windows 7.2/7.3.ASAN test_c with multiple observers: [8.4]recovered on retry (it is not in the persistent-failure list). The two Windows jobs were also retried (tmp/artifacts/retried_jobs.tsv) and still hit the wall-clock limit — consistent with chronic Windows-runner slowness rather than a deterministic crash.The
windows test_cworkload is heavy and slow on the Windows Server 2019 runners: it creates a NAT Docker network, starts three Windows containers (httpbin, request-replayer, and the build/test container), produces a debug build (configure.bat --enable-debug-pack, which is markedly slower), and then runs the full extension test suite. Debug builds on the oldest (slowest) PHP toolchains routinely sit near the 60-minute boundary, so a couple of them tipping over is expected variance.Non-trivial changes made
No code changes required.
The new libdatadog SHA compiled and linked cleanly across all platforms (no compilation traces were emitted). None of the breaking changes in the changelog (e.g. VecMap span representation #2043/#2069, trace-buffer changes #2055/#2046, FFI error/response alignment #2029, crashtracking refactors) surfaced as a build break against dd-trace-php's call sites, so there was nothing to adapt.
Identified libdatadog issues
None identified.
There is no panic, regression, or behavioural change attributable to libdatadog. The failures are wall-clock timeouts in the CI infrastructure, not faults originating inside libdatadog.
Flaky / ignored failures
windows test_c: [7.2]andwindows test_c: [7.3]— both failed withfailure_reason: job_execution_timeout, hitting the job's60mlimit exactly. These are timing/infrastructure failures (heavy Docker-on-Windows setup + debug build + full test suite on the slowest PHP toolchains), not libdatadog API or behaviour regressions. Per the classification rules, timing-based timeouts are treated as flaky and not fixed in code. Recommended action: re-run the two jobs; if they persistently sit at the 60-minute boundary, raise thewindows test_ctimeout or split the Windows matrix to give the oldest PHP versions more headroom — this is a CI-config concern, independent of the libdatadog bump./cc @bwoebi